#!D:/CODE/python
# -*- coding: utf-8 -*-
# @Time : 2020/5/20 22:42
# @Author : Alexdong
# @Site : 
# @File : tcp服务器.py
# @Software: PyCharm
# Functional description: tcp服务器

from socket import *

def main():
    tcp_server_socket = socket(AF_INET, SOCK_STREAM)

    # 本地信息
    address = ('', 7887)

    # 绑定
    tcp_server_socket.bind(address)

    # listen变被动,等电话
    tcp_server_socket.listen(128)
    while True:
        # accept接受
        # 服务器的监听会给客户端找另一个套接字，然后断开该监听，继续监听新客户端
        # 获得客户端信息，套接字,ip和端口的元组
        print("等待一个客户端。。")
        new_client_socket, client_address = tcp_server_socket.accept()
        print("一个新的客户端来了%s" % str(client_address))

        # 循环为每个客户端多次服务
        while True:
            # 接受客户端请求
            recv_data = new_client_socket.recv(1024)
            print(recv_data)
            # 如果recv解堵塞
            # 发送过来东西了，就回复你；没数据，就break然后关闭该客户端的服务
            if recv_data:
                # 通知收到
                new_client_socket.send('hahah---ok---'.encode('utf-8'))
            else:
                break
        # 关闭某客户端套接字
        new_client_socket.close()
        print("已经为该客户端服务完毕")
    # 关闭监听套接字
    tcp_server_socket.close()

if __name__ == "__main__":
    main()